#!/usr/bin/env python 
# encoding: utf-8 

"""
@version: v1.0
@author: xover
@contact: xe333@sina.com
@software: PyCharm
@file: 大写人民币.py
@time: 2020/3/27 0027 12:08
"""

"""
银行在打印票据的时候，常常需要将阿拉伯数字表示的人民币金额转换为大写表示，
现在请你来完成这样一个程序。
在中文大写方式中，0到10以及100、1000、10000被依次表示为：    
零 壹 贰 叁 肆 伍 陆 柒 捌 玖 拾 佰 仟 万
 以下的例子示范了阿拉伯数字到人民币大写的转换规则：
 1  壹圆 11 壹拾壹圆 111  壹佰壹拾壹圆 101    壹佰零壹圆
 -1000   负壹仟圆 1234567  壹佰贰拾叁万肆仟伍佰陆拾柒圆
 现在给你一个整数a(|a|&lt;100000000), 请你打印出人民币大写表示
. 例如：a=1 则输出：壹圆
注意 ：
请以<strong>Unicode</strong>的形式输出答案。
提示：所有的中文字符，在代码中直接使用其Unicode的形式即可满足要求，
中文的Unicode编码可以通过如下方式获得：u'壹'。 
"""


def main():
    try:
        a = int(input('请输入阿拉伯数字: '))
    except Exception:
        print("输入错误")
        main()
    M = [u'零', u'壹', u'贰', u'叁', u'肆', u'伍', u'陆', u'柒', u'捌', u'玖']
    N = ['', u'圆', u'拾', u'佰', u'仟', u'万', u'拾', u'佰', u'仟', u'亿', u'零']
    O = {u'零仟': u'零', u'零佰': u'零', u'零拾': u'零', u'零零零': u'零', u'零零': u'零',
         u'零万': u'万', u'零圆': u'圆', u'亿万': u'亿'}
    r = ('' if a >= 0 else u'负')
    s = str(abs(a))
    for i in range(0, len(s)):
        r = r + M[int(s[i])] + N[len(s) - i]
    for n in range(10):
        for i in O:
            r = r.replace(i, O[i])
    print(r if a != 0 else u'零圆')


if __name__ == "__main__":
    main()
